GitHub 标星 2.3k+,比个手势,AI 自动识别 Emoji!
关注 “GitHubDaily”
设为 “星标”,每天带你逛 GitHub!
一只手势识别 AI,怎样才算得上 (优) 秀啊?
不停地变换姿势,都能实时输出 Emoji,大约是很秀了:
🖖是来自《星际旅行》瓦肯的举手礼。不大常用,做起来甚至有难度。
🤞是好运,一般会两只手一起比。不过,也不是人类通用的手势。
即便这样,AI 依然机智地识别出来。并且,它是在浏览器上跑,也几乎没有延时。
AI 的爸爸,名字叫 Nick Bourdakos (简称 “尼克”) ,是来自 IBM 的程序猿。
尼克把自己的调教成果发了推特,揽下 2.8 万赞:
△ 666
尼克用的是 TensorFlow.js,实时识别毫无压力。
他把算法开源了,说大家都可以试一试。
半小时就好
尼克说这个模型很简单,就是 SSD-MobileNet。
MobileNet 是分类,SSD 是目标检测,搭配食用也是常规方法。
他是用 IBM 云上的 GPU 训练的,免费的 k80,半小时就训练好了。
在训练开始之前,要先准备数据:AI 吃的是标注过的手势图。
准备就绪,就来安装模型吧:
1$ npm install -g cloud-annotations
然后,可以开始训练了:
1$ cacli
2┌─────────────────────────────┐
3│ (C)loud (A)nnotations (CLI) │
4│ version 1.0.12 │
5└─────────────────────────────┘
6
7Usage: cacli <command>
8
9where <command> is one of:
10 init Interactively create a config.yaml file
11 train Start a training run
12 logs Monitor the logs of a training run
13 progress Monitor the progress of a training run
14 list List all training runs
15 download Download a trained model
16
17cacli <cmd> -h quick help on <cmd>
当然,也不是非要用 IBM 云,也不是非要用 GPU。拿 CPU 也能调教 AI,大概要几小时吧。
训练完成,该在浏览器上跑了。GitHub 项目里,自带了转换为 TensorFlow.js 模型的脚本。
把模型添加到 React App 里面。
最后,写一句 nmp start,用浏览器打开 http://localhost:3000。
耶,这样就可以对着屏幕随意舞动手指了,你的 AI 会明白的:
当然,这只机智的 AI,才不是只能识别手指。
喝点什么
只看你用什么样的数据去投喂 AI 了。
曾经,尼克就帮 AI 修炼了分辨汽水的眼力。
第一题:一瓶雪碧,一瓶 Canada Dry,都是绿色。
不管调换位置、还是侧过瓶身,AI 都不会被迷惑。定格一看:
第二题:加大难度,两瓶都是 Mountain Dew,一瓶普通一瓶低糖。
AI 依然分得清楚,毫不犹豫。
分辨手势,分辨汽水,都不失水准。
那么问题来了,你想让 AI 识别什么呢?
想好了就开始调教吧,代码在这里:
https://github.com/cloud-annotations/training/
P.S. 推特评论区,已经有小伙伴亲测成功,并表示 Easy。